﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    public class Dragon
    {

// ---------------------------------------------- Deklaration der Variablen ----------------------------------------------

        private int id;
        private String type;
        private bool busy;
        private String description;
        private int x; //X-Koordinate auf dem Spielfeld
        private int y; //Y-Koordinate auf dem Spielfeld
        private bool delete;

// --------------------------------------------- Konstruktor Initialisierung ---------------------------------------------

        /*
         * Konstruktor des Dragons
         * Informationen werden aus der Liste ausgelesen und in die jeweilige Variable
         * abgespeichert und weiter verwendet
         * @param dragonInformations beinhaltet sämtliche Informationen in einer Liste aus Strings 
         */
        public Dragon(int id, bool busy, String description, int x, int y)
        {
            this.id = id;
            this.type = "Dragon";
            this.busy = busy;
            this.description = description;
            this.x = x;
            this.y = y;
        }


// ------------------------------------------------ öffentliche Methoden -------------------------------------------------



// ------------------------------------------------ Getter/Setter-Methoden -----------------------------------------------

        /*
         * Getter/Setter-Methode der ID des Dragons, welche
         * nötig ist um den Dragon zu identifizieren und ihn 
         * von den anderen zu unterscheiden
         * @retun gibt die einmalige ID zurück
         */
        public int Id
        {
            get
            {
                return this.id;
            }
            set
            {
                this.id = value;
            }
        }


        /*
         * Getter/Setter-Methode für die Dragonbeschreibung
         * @return gibt die Drachenspezifische Beschreibung zurück 
         */
        public String Type
        {
            get
            {
                return this.type;
            }
            set
            {
                this.type = value;
            }
        }


        /*
         * Getter/Setter-Methode zur Abfrage ob der Drache beschäftigt ist,
         * d.h. ob er momentan ein Minigame integriet ist und somit nicht erneut
         * benutzt werden kann
         * @return gibt den Beschäftigtheitsstatus zurück
         */
        public bool Busy
        {
            get
            {
                return this.busy;
            }
            set
            {
                this.busy = value;
            }
        }


        /*
         * Getter/Setter-Methode für die Dragonbeschreibung
         * @return gibt die Drachenspezifische Beschreibung zurück
         */
        public String Description
        {
            get
            {
                return this.description;
            }
            set
            {
                this.description = value;
            }
        }


        /*
         * Getter/Setter-Methode der X-Variable, welche
         * zur Positionierung auf dem Spielfeld genutzt wird
         * @return gibt den Standpunkt auf der X-Achse zurück
         */
        public int X
        {
            get
            {
                return this.x;
            }
            set
            {
                this.x = value;
            }
        }


        /*
         * Getter/Setter-Methode der Y-Variable, welche
         * zur Positionierung auf dem Spielfeld genutzt wird
         * @return gibt den Standpunkt auf der Y-Achse zurück
            */
        public int Y
        {
            get
            {
                return this.y;
            }
            set
            {
                this.y = value;
            }
        }


        /*
         * Getter/Setter-Methode zur Abfrage ob dieser Drache gelöscht werden soll
         * @return gibt bei Löschung true zurück
         */
        public bool Delete
        {
            get
            {
                return this.delete;
            }
            set
            {
                this.delete = value;
            }
        }

    }
}
